package com.xjscrm.console.param.groupSend;

import com.xjscrm.console.param.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.List;

@Data
@ApiModel("极速群发参数")
public class SpeedGroupSendTaskDto extends BaseDto {

    /**
     * 主键id
     */
    @ApiModelProperty(value = "主键id")
    private Long id;

    @ApiModelProperty(value = "企业ID")
    private String corpId;

    /**
     * 任务名称
     */
    @ApiModelProperty(value = "任务名称")
    private String name;

    /**
     * 状态（0已关闭 1进行中）
     */
    @ApiModelProperty(value = "状态（0已关闭 1进行中）")
    private Integer status;

    /**
     * 类型(0-立即发送；1-定时发送；2-每天发送；3-每周发送；4-每月发送)
     */
    @ApiModelProperty(value = "类型(0-立即发送；1-定时发送；2-每天发送；3-每周发送；4-每月发送)")
    private Integer type;

    /**
     * 立即发送和定时发送时间（时间搓）
     */
    @ApiModelProperty(value = "立即发送和定时发送时间（时间搓）")
    private Integer sendTime;

    /**
     * 每天发送时间（HH:mm:ss）
     */
    @ApiModelProperty(value = "每天发送时间（HH:mm:ss）")
    private String time;

    /**
     * 星期几列表（1-星期一；2-星期二；3-星期三；4-星期四；5-星期五；6-星期六；7-星期天）
     */
    @ApiModelProperty(value = "星期几列表（1-星期一；2-星期二；3-星期三；4-星期四；5-星期五；6-星期六；7-星期天）")
    private String week;

    /**
     * 几号列表（1、2、3、........ 31）
     */
    @ApiModelProperty(value = "几号列表（1、2、3、........ 31）")
    private String day;

    /**
     * 截止状态(0-不截止；1-截止)
     */
    @ApiModelProperty(value = "截止状态(0-不截止；1-截止)")
    private Integer deadStatus;

    /**
     * 截止时间戳
     */
    @ApiModelProperty(value = "截止时间戳")
    private Integer deadTime;

    /**
     * 客户应答开关(0-关闭;1-开启)
     */
    @ApiModelProperty(value = "客户应答开关(0-关闭;1-开启)")
    private Integer customerSwitch;

    /**
     * 客户类型(0-全部客户；1-筛选客户；2-选择客户)
     */
    @ApiModelProperty(value = "客户类型(0-全部客户；1-筛选客户；2-选择客户)")
    private Integer customerType;

    /**
     * 客户企业标签选项(0-含任意标签；1-含所有标签；2-未打任何标签)
     */
    @ApiModelProperty(value = "客户企业标签选项(0-含任意标签；1-含所有标签；2-未打任何标签)")
    private Integer customerEnterpriseTagOpt;

    /**
     * 客户企业标签列表
     */
    @ApiModelProperty(value = "客户企业标签列表")
    private String customerEnterpriseTags;

    /**
     * 客户添加日期开始值(yyyy-MM-dd)
     */
    @ApiModelProperty(value = "客户添加日期开始值(yyyy-MM-dd)")
    private String customerCreateDayStart;

    /**
     * 客户添加日期结束值(yyyy-MM-dd)
     */
    @ApiModelProperty(value = "客户添加日期结束值(yyyy-MM-dd)")
    private String customerCreateDayEnd;

    /**
     * 客户备注选项(0-无备注；1-有备注)
     */
    @ApiModelProperty(value = "客户备注选项(0-无备注；1-有备注)")
    private Integer customerRemarkOpt;

    /**
     * 性别(0-未知；1-男；2-女)
     */
    @ApiModelProperty(value = "性别(0-未知；1-男；2-女)")
    private Integer customerGenders;

    /**
     * 排除客户条件开关（0-关闭，1-开启）
     */
    @ApiModelProperty(value = "排除客户条件开关（0-关闭，1-开启）")
    private Integer customerExcludeCondition;

    /**
     * 排除的客户企业标签选项(0-含任意标签；1-含所有标签；2-未打任何标签)
     */
    @ApiModelProperty(value = "排除的客户企业标签选项(0-含任意标签；1-含所有标签；2-未打任何标签)")
    private Integer customerExcludeEnterpriseTagOpt;

    /**
     * 排除的客户企业标签列表
     */
    @ApiModelProperty(value = "排除的客户企业标签列表")
    private String customerExcludeEnterpriseTags;

    /**
     * 排除客户添加日期开始值(yyyy-MM-dd)
     */
    @ApiModelProperty(value = "排除客户添加日期开始值(yyyy-MM-dd)")
    private String customerExcludeCreateDayStart;

    /**
     * 排除客户添加日期结束值(yyyy-MM-dd)
     */
    @ApiModelProperty(value = "排除客户添加日期结束值(yyyy-MM-dd)")
    private String customerExcludeCreateDayEnd;

    /**
     * 排除客户备注选项(0-无备注；1-有备注)
     */
    @ApiModelProperty(value = "排除客户备注选项(0-无备注；1-有备注)")
    private Integer customerExcludeRemarkOpt;

    /**
     * 排除性别(0-未知；1-男；2-女)
     */
    @ApiModelProperty(value = "排除性别(0-未知；1-男；2-女)")
    private Integer customerExcludeGenders;

    @ApiModelProperty(value = "排除今日新用户(0-关闭；1-开启)")
    private Integer customerExcludeNewUserOpt;

    /**
     * 群应答开关(0-关闭；1-开启)
     */
    @ApiModelProperty(value = "群应答开关(0-关闭；1-开启)")
    private Integer groupSwitch;

    /**
     * 群类型(0-全部客户；1-筛选群；2-选择群)
     */
    @ApiModelProperty(value = "群类型(0-全部客户；1-筛选群；2-选择群)")
    private Integer groupType;

    /**
     * 群名关键词选项(0-含任意关键词；1-含所有关键词)
     */
    @ApiModelProperty(value = "群名关键词选项(0-含任意关键词；1-含所有关键词)")
    private Integer groupNameKeywordOpt;

    /**
     * 群名关键词列表
     */
    @ApiModelProperty(value = "群名关键词列表")
    private String groupNameKeywords;

    /**
     * 群标签选项(0-含任意标签；1-含所有标签；2-未打任何标签)
     */
    @ApiModelProperty(value = "群标签选项(0-含任意标签；1-含所有标签；2-未打任何标签)")
    private Integer groupTagOpt;

    /**
     * 群标签列表
     */
    @ApiModelProperty(value = "群标签列表")
    private String groupTags;

    /**
     * 群成员角色列表(0-群主；1-管理员；2-普通成员)
     */
    @ApiModelProperty(value = "群成员角色列表(0-群主；1-管理员；2-普通成员)")
    private String groupMemberIdentitys;

    /**
     * 群成员人数最小值
     */
    @ApiModelProperty(value = "群成员人数最小值")
    private Integer groupMemberTotalMin;

    /**
     * 群成员人数最大值
     */
    @ApiModelProperty(value = "群成员人数最大值")
    private Integer groupMemberTotalMax;

    /**
     * 群建群日期开始值(yyyy-MM-dd)
     */
    @ApiModelProperty(value = "群建群日期开始值(yyyy-MM-dd)")
    private String groupCreateDayStart;

    /**
     * 群建群日期结束值(yyyy-MM-dd)
     */
    @ApiModelProperty(value = "群建群日期结束值(yyyy-MM-dd)")
    private String groupCreateDayEnd;

    /**
     * 消息内容（0-消息；1-公告）
     */
    @ApiModelProperty(value = "消息内容（0-消息；1-公告）")
    private Integer msgType;

    /**
     * 公告内容
     */
    @ApiModelProperty(value = "公告内容")
    private String notice;

    /**
     * 消息内容
     */
    @ApiModelProperty(value = "消息内容")
    private String msgDatas;

    /**
     * 最新处理时间
     */
    @ApiModelProperty(value = "最新处理时间")
    private Integer handerTime;

    @ApiModelProperty(value = "极速群发任务和客户/群关系参数")
    private List<SpeedGroupSendTaskCustomerDto> speedGroupSendTaskCustomerDtoList;

    @ApiModelProperty(value = "极速群发任务和机器人关系参数")
    private List<SpeedGroupSendTaskDeviceDto> speedGroupSendTaskDeviceDtoList;
}
